package com.gluck.cases.core.modal.assemble;

import com.gluck.cases.core.modal.dto.CasesApiDTO;
import com.gluck.cases.core.modal.dto.TestCaseDTO;
import com.gluck.cases.core.modal.entity.CasesApi;
import com.gluck.cases.core.modal.req.CasesApiReq;

import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @ClassName CasesApiAssemble
 * @Desc CasesApiAssemble 组装类
 * @Author shiyongzhe
 * @Date 2022/5/28 - 6:35 下午
 **/
public class CasesApiAssemble {

    public static List<CasesApiDTO> CasesApiConvertDtoList(List<CasesApi> casesApis){
        List<CasesApiDTO> dtos = casesApis.stream().map((entity) -> {
            CasesApiDTO dto = new CasesApiDTO();
            dto.setPid(entity.getPid());
            dto.setCategory(entity.getCategory());
            dto.setApi(entity.getApi());
            dto.setMethod(entity.getMethod());
            dto.setParams(entity.getParams());
            dto.setService(entity.getService());
            dto.setId(entity.getId());
            return dto;
        }).collect(Collectors.toList());
        return dtos;
    }

    public static CasesApiDTO CasseApiConvertDTO(CasesApi casesApi){
        CasesApiDTO dto = new CasesApiDTO();
        dto.setApi(casesApi.getApi());
        dto.setApiName(casesApi.getApiName());
        dto.setService(casesApi.getService());
        dto.setPid(casesApi.getPid());
        dto.setMethod(casesApi.getMethod());
        dto.setId(casesApi.getId());
        dto.setCategory(casesApi.getCategory());
        dto.setParams(dto.getParams());
        return dto;
    }

    public static CasesApi TestCaseDTOConvertCasesApi(TestCaseDTO dto){
        CasesApi casesApi = new CasesApi();
        casesApi.setParams(dto.getParams());
        casesApi.setMethod(dto.getRequestMethod());
        casesApi.setApi(dto.getApiPath());
        casesApi.setCategory(dto.getCaseName().split(":")[0]);
        casesApi.setApiName(dto.getTestName());
        casesApi.setCreatedAt(new Date());
        casesApi.setUpdatedAt(new Date());
        casesApi.setPid(0l);
        casesApi.setService("");
        return casesApi;
    }

    public static CasesApiDTO ReqConvertCaseApiDTO(CasesApiReq req){
        CasesApiDTO dto = new CasesApiDTO();
        dto.setId(req.getId());
        dto.setCategory(req.getCategory());
        dto.setMethod(req.getMethod());
        dto.setService(req.getService());
        return dto;
    }
}
